#pragma once
#include <string>

/*
	本单元实现一个简易的多线程日志输出,保证多个线程同时输出至 cout 或 cerr 时不会错乱.
*/

using str_t = std::string;

namespace mini_log {

// 注册当前线程名
void reg_thread( const str_t& thread_name );

// 输出到 cout(stdout)
void log_stdout( const str_t& log_body );

// 输出到 cerr()
void log_stderr( const str_t& log_body );

// 简单格式化数字
template<typename T>
str_t fmt( const T	value,		//源数值
		   size_t	width = 0,	//结果宽度(含填充及分隔符)
		   size_t	preci = 3,	//精度(小数位数)
		   size_t	group = 0,	//分组位数(隔几位分一下)
		   char		pad_c = ' ',	//左边填充字符
		   char		sep_c = '\'' );	//分组分隔符

};	// namespace mini_log

// kate: indent-mode cstyle; indent-width 4; replace-tabs off; tab-width 4;
